[MDM-BACKEND-013] Создать метод POST /api/products
Разработка эндпоинта инициализации синтеза Master Data с паттерном Async ACK
NoteКраткая карточка задачи
- Репозиторий / Компонент:
backend-api(API Gateway). - Контракт метода:
POST /api/products. - Ссылка на Метод: Интерфейс экрана Cookbook и деконструкции текстов
- Статус: Готово к реализации
- Инструкция по шагам:
- На Шаге 1: Реализовать прием запроса от скрипта наполнения Master Data или администратора. Обязательно сгенерировать сквозной
X-Request-ID(trace_id). - Разработать Pydantic-валидацию входящего тела (поля:
nameтипа string,app_langтипа string с дефолтомru). - На Шаге 2: Открыть транзакцию и выполнить инструкцию
INSERT INTO fridge_db.food_elements (name, status, created_at) VALUES (:name, 'PENDING', NOW()) RETURNING id. Принудительная запись вfridge_dbобусловлена нахождением сущностейfood_elementsвнутри контура INVENTORY согласно манифесту. - На Шаге 3: Не дожидаясь генерации ИИ, немедленно вернуть клиенту статус
202 Acceptedс UUID созданной записи для разблокировки вызывающего потока. - На Шаге 4: Сразу после ответа отправить в Kafka-топик
bpds.mdm.in.product.processзадачу на генерацию карточки. В Payload упаковатьproduct_id,product_name,app_langиtrace_id.
- На Шаге 1: Реализовать прием запроса от скрипта наполнения Master Data или администратора. Обязательно сгенерировать сквозной